//
// Background color
//
@mixin background-color-util($class) {
  #{$class} {
    &,
    & > tbody > tr > td,
    &.btn td a,
    &.badge td {
      @content
    }
  }
}

//
// Color
//
@mixin color-util($class) {
  #{$class} {
    &,
    & > tbody > tr > td,
    &.btn td a,
    &.badge td {
      @content
    }
  }
}

//
// Border radius
//
@mixin border-radius-util($class) {
  #{$class} {
    &,
    & > tbody > tr > td,
    &.btn td,
    &.btn td a,
    &.badge td {
      @content
    }
  }
}

//
// Border color
//
@mixin border-color-util($class) {
  #{$class} {
    &,
    &.btn td a,
    &.hr td {
      @content
    }
  }
}

//
// Sizing (width & height)
//
@mixin sizing-util($class) {
  #{$class} {
    &,
    & > tbody > tr > td {
      @content
    }
  }
}

//
// Spacer
//
@mixin spacer-util($class) {
  #{$class} {
    & > tbody > tr > td {
      @content
    }
  }
}

//
// Font weight
//
@mixin font-weight-util($class) {
  #{$class} {
    &,
    & > tbody > tr > td,
    &.btn td a  {
      @content
    }
  }
}

//
// Text align
//
@mixin text-align-util($class) {
  #{$class} {
    &,
    & > tbody > tr > td {
      @content
    }
  }
}

//
// Vertical align
//
@mixin valign-util($class) {
  #{$class} {
    &,
    & > tbody > tr > td {
      @content
    }
  }
}

//
// Padding
//
@mixin padding-util($class) {
  #{$class} {
    &:not(table),
    &:not(.btn) > tbody > tr > td,
    &.btn td a {
      @content
    }
  }
}

//
// Padding group
//
@mixin padding-group($prefix, $size, $value) {
  @include padding-util('.p-#{$prefix}#{$size}') {
    padding: $value;
  }

  @include padding-util('.pt-#{$prefix}#{$size}, .py-#{$prefix}#{$size}') {
    padding-top: $value;
  }

  @include padding-util('.pr-#{$prefix}#{$size}, .px-#{$prefix}#{$size}') {
    padding-right: $value;
  }

  @include padding-util('.pb-#{$prefix}#{$size}, .py-#{$prefix}#{$size}') {
    padding-bottom: $value;
  }

  @include padding-util('.pl-#{$prefix}#{$size}, .px-#{$prefix}#{$size}') {
    padding-left: $value;
  }
}
